var intCorrelativo = 1;
var strSimbolo = "L ";

function checkFecha() {
    boolReturn = false;
    strFecha = "";
    strFecha = $("#frmPartidas_fecha").val();
    $.ajax({
                    
        type: "POST",
        dataType: "json",
        url: "admin_contabilidad_partidas_data.php?operation=gc&fecha="+strFecha,
        beforeSend:function() {
            
        },
        success:function(data) {
            strFecha = $("#frmPartidas_fecha").val();
            
            alert(strFecha+"  -  "+data["return"]);
            
            boolReturn = data["return"];
        },
        error:function() {
            boolReturn = false;
        }
        
    });
    
    return  boolReturn;
    
}

function drawNewLine(id) {
    
    var strHTML = "";
    var empresa = 0;
    
    strHTML =   '<div class="frmPartidasSerch"><input type="text" name="txtSerch_'+id+'" id="txtSerch_'+id+'" value="" size = "50">'
                +'<input type="hidden" name="hdnCuenta_'+id+'" id="hdnCuenta_'+id+'" /><div id="divCuenta_'+id+'"  title="Hacer doble click para seleccionar otra cuenta."></div></div>'
                +'<div class="frmPartidasValores"><input type="text" name="txtDebe_'+id+'" id="txtDebe_'+id+'" value="" class="frmPartidasValoresInputs"></div>'
                +'<div class="frmPartidasValores"><input type="text" name="txtHaber_'+id+'" id="txtHaber_'+id+'" value="" class="frmPartidasValoresInputs"></div>';
    $("#frmPartidas-detalle").append(strHTML);
    
    
    $("select[name='sltEmpresa'] option:selected").each( function() {
        empresa = $(this).val();
    });
    
    $("#txtSerch_"+id).autocomplete({
        
        source: "admin_contabilidad_partidas_data.php?operation=cgcun&empresa="+empresa,
        minLength: 1,
        select: function( event, ui ) {
            
            //if( !checkCuentas(ui.item.id) ) {
                $("input[name='hdnCuenta_"+id+"']").val(ui.item.id);
                $("#divCuenta_"+id).html(ui.item.value);
                $(this).hide();
                if( $( "#txtDebe_"+id).val().length > 0 || $("#txtHaber_"+id).val().length > 0 ) {
                    intCorrelativo++;
                    drawNewLine(intCorrelativo);
                    getTotales();
                    $("#txtSerch_"+intCorrelativo).select();
                }
            /*}
            else {
                alert("¡Cuenta ya seleccionada!");
                $("#txtSerch_"+id).select();
            }*/
            
        }
                
    });
    
    $( "#txtDebe_"+id).keyup(function() {
        
        nextID = id + 1 * 1;
        if( $(this).val().length > 0 && $("#txtSerch_"+nextID).length == 0 && $("#hdnCuenta_"+id).val().length > 0 ) {
            
            intCorrelativo++;
            drawNewLine(intCorrelativo);
            getTotales();
            //$("#txtSerch_"+intCorrelativo).select();
            
        }
    });
    
    $("#txtHaber_"+id).keyup(function() {
        
        nextID = id + 1 * 1;
        if( $(this).val().length > 0 && $("#txtSerch_"+nextID).length == 0  && $("#hdnCuenta_"+id).val().length > 0 ) {
            
            intCorrelativo++;
            drawNewLine(intCorrelativo);
            getTotales();
            //$("#txtSerch_"+intCorrelativo).select();
            
        }
    });
    
    $( "#txtDebe_"+id).keyup(function() {
        if( $(this).val().length > 0 ) {
            $("#txtHaber_"+id).hide();
        }
        else {
            $("#txtHaber_"+id).show();
        }
        
        getTotales();
    });
    
    $("#txtHaber_"+id).keyup(function() {
        if( $(this).val().length > 0 ) {
            $("#txtDebe_"+id).hide();
        }
        else {
            $("#txtDebe_"+id).show();
        }
        
        getTotales();
    });
    
    $("#divCuenta_"+id).dblclick( function () { 
        $("input[name='hdnCuenta_"+id+"']").val("");
        $(this).html("");
        $("#txtSerch_"+id).show();
        $("#txtSerch_"+id).select();
    });
    
    $('input[name*="txtDebe_"]').blur(function() {
        $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    }).keyup(function(e) {
        var e = window.event || e;
        var keyUnicode = e.charCode || e.keyCode;
        if (e !== undefined) {
            switch (keyUnicode) {
                case 16: break; // Shift
                case 17: break; // Ctrl
                case 18: break; // Alt
                case 27: this.value = ''; break; // Esc: clear entry
                case 35: break; // End
                case 36: break; // Home
                case 37: break; // cursor left
                case 38: break; // cursor up
                case 39: break; // cursor right
                case 40: break; // cursor down
                case 78: break; // N (Opera 9.63+ maps the "." from the number key section to the "N" key too!) (See: http://unixpapa.com/js/key.html search for ". Del")
                case 110: break; // . number block (Opera 9.63+ maps the "." from the number block to the "N" key (78) !!!)
                case 190: break; // .
                default: $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: -1, symbol: strSimbolo, eventOnDecimalsEntered: true });
            }
        }
    });
    
    $('input[name*="txtHaber_"]').blur(function() {
        $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    }).keyup(function(e) {
        var e = window.event || e;
        var keyUnicode = e.charCode || e.keyCode;
        if (e !== undefined) {
            switch (keyUnicode) {
                case 16: break; // Shift
                case 17: break; // Ctrl
                case 18: break; // Alt
                case 27: this.value = ''; break; // Esc: clear entry
                case 35: break; // End
                case 36: break; // Home
                case 37: break; // cursor left
                case 38: break; // cursor up
                case 39: break; // cursor right
                case 40: break; // cursor down
                case 78: break; // N (Opera 9.63+ maps the "." from the number key section to the "N" key too!) (See: http://unixpapa.com/js/key.html search for ". Del")
                case 110: break; // . number block (Opera 9.63+ maps the "." from the number block to the "N" key (78) !!!)
                case 190: break; // .
                default: $(this).formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: -1, symbol: strSimbolo, eventOnDecimalsEntered: true });
            }
        }
    });    
    
}

function getTotales() {
    sinTotalDebe = 0;
    sinTotalHaber = 0;
    $("input[name*='txtDebe_']").each( function() {
        arrSplit = $(this).attr("name").split("_");
        
        if( $("#hdnCuenta_"+arrSplit[1]).val().length > 0 )
            sinTotalDebe += $(this).asNumber() * 1;
            sinTotalDebe = sinTotalDebe * 100;
            sinTotalDebe = Math.round(sinTotalDebe);
            sinTotalDebe = sinTotalDebe / 100;
    });
    
    $("input[name*='txtHaber_']").each( function() {
        arrSplit = $(this).attr("name").split("_");
        
        if( $("#hdnCuenta_"+arrSplit[1]).val().length > 0 )
            sinTotalHaber += $(this).asNumber() * 1;
            sinTotalHaber = sinTotalHaber * 100;
            sinTotalHaber = Math.round(sinTotalHaber);
            sinTotalHaber = sinTotalHaber / 100;
    });
    var sinTotalD = new Number( sinTotalDebe );
    sinTotalDebe = sinTotalD.toFixed(2);
    var sinTotalH = new Number( sinTotalHaber );
    sinTotalHaber = sinTotalH.toFixed(2);
    
    $("input[name='txtTotalDebe']").val(sinTotalDebe);
    $("input[name='txtTotalHaber']").val(sinTotalHaber);
    
    $('input[name="txtTotalDebe"]').formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    $('input[name="txtTotalHaber"]').formatCurrency({ colorize: true, negativeFormat: '-%s%n', roundToDecimalPlace: 2, symbol: strSimbolo });
    
}

function checkCuentas(id) {
    boolReturn = false;
    $("input[name*='hdnCuenta_']").each( function() {
        
        if( $(this).val() == id ) boolReturn = true;
        
    });        
    
    return boolReturn;        
}

function frmPartidasSave() {
    
    /*variables*/
    var boolError = false;
    var boolDatos = false;
    var strError = "";
    var strHtml = "";
    var empresa = 0;
    var strPost = "";
    var boolOrigen = false;
    var intTabSelected = 0;
    var txtNumero = "";
    /*variables*/
    
    empresa = 0;
    $("select[name='sltEmpresa'] option:selected").each( function() {
        empresa = $(this).val();
    });
    
    if( empresa == 0 ) {
        boolError = true;
        strError += strError.length > 0 ? "\n" : "";
        strError += "Seleccione empresa.";
    }
    
    objForm = $("input[name='frmPartidas_fecha']");
    if( objForm.val().length == 0 ) {
        boolError = true;
        strError += strError.length > 0 ? "\n" : "";
        strError += "Seleccione fecha.";
    }
    else {
        strPost += strPost.length > 0 ? "&" : "";
        strPost += objForm.attr("name") + "=" + objForm.val();
    }
    
    objForm = $("#frmPartidas_descripcion");
    if( objForm.val().length == 0 ) {
        boolError = true;
        strError += strError.length > 0 ? "<br>" : "";
        strError += "Ingrese descripción.";
    }
    else {
        strPost += strPost.length > 0 ? "&" : "";
        strPost += "frmPartidas_descripcion=" + objForm.val();
    }
    
    
    if( $("#txtTotalDebe").val() != $("#txtTotalHaber").val() || $("#txtTotalDebe").val() == 0 ) {
        boolError = true;
        strError += strError.length > 0 ? "<br>" : "";
        strError +="¡ Partida no cuadra !";
    }
    



    if( !boolError ) {
        
        $('input[name*="txtDebe_"]').toNumber();
        $('input[name*="txtHaber_"]').toNumber();
        $('input[name="txtTotalDebe"]').toNumber();
        $('input[name="txtTotalHaber"]').toNumber();
        
        $("input").each( function() {
            strPost += strPost.length > 0 ? "&" : "";
            strPost += $(this).attr("name") + "=" + $(this).val();
        });
        
        $("#frmPartidas-de-mensaje").html("");
        $.ajax({
                    
            type: "POST",
            url: "admin_contabilidad_partidas_data.php?operation=s",
            data: "empresa="+empresa+"&"+strPost,
            beforeSend:function() {
                
            },
            success:function(data) {
                strHtml='<div style="float: left; width: 400px; height: 30px; border-bottom: 1px solid black;"><b>Cuenta</b></div>'+
                        '<div style="float: left; width: 200px; height: 30px; border-bottom: 1px solid black; text-align: center;"><b>Debe</b></div>'+
                        '<div style="float: left; width: 200px; height: 30px; border-bottom: 1px solid black; text-align: center;"><b>Haber</b></div>'+
                        '<div style="float: left; width: 400px; height: 10px;">&nbsp;</div>'+
                        '<div style="float: left; width: 200px; height: 10px;">&nbsp;</div>'+
                        '<div style="float: left; width: 200px; height: 10px;">&nbsp;</div>';
                
                $("#frmPartidas-detalle").html(strHtml);
                intCorrelativo = 1;
                drawNewLine(intCorrelativo);
                $("#frmPartidas-de-mensaje").html(data);
                $('#frmPartidas').each (function(){
                    this.reset();
                });
            },
            error:function() {
                
            }
            
        });
    }
    else {
        
        //alert(strError);
        strHtml+='<div class="ui-widget" style="border: 0px solid white; width: 900px; height: auto; vertical-align: bottom;" align="center">'+
         '<div class="ui-state-error ui-corner-all" style="margin-top: 0px; padding: 0pt 0.7em; height: auto; width: 400px;">'+
         '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: 0.3em;"></span>'+strError+' '+
         '</div>'+
         '</div>'+
         '<br><br>';
         $("#frmPartidas-de-mensaje").html(strHtml);
        
    }
    
}   

$(document).ready( function () {
        
    $("#frmPartidas_fecha").focus(function () {
               
    });
    $("#frmPartidas_fecha").datepicker({
        changeMonth: true,
        changeYear: true,
        monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
        dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
        dateFormat: 'dd-mm-yy'
    });
    
    drawNewLine(intCorrelativo);
});


$(function() {
    
    $("#frmPartidas-grabar").button({
        icons: {
            primary: "ui-icon-disk"
        }
    }).click( function () {
        frmPartidasSave();
        
        return false;
        
    });
    
    $("#frmPartidas-grabar2").button({
        icons: {
            primary: "ui-icon-disk"
        }
    }).click( function () {
        frmPartidasSave();
        
        return false;
        
    });
    
    $("select[name='sltEmpresa']").change( function() {
        $("#frmPartidas").submit();
    });
    
});